<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <ui:decorate template="/resources/template/modelo.xhtml">

        <ui:define name="centro">
            <f:view encoding="ISO-8859-1">  
                <h:form id="form">

                    <p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" escape="false" />  
                    <p:panel  header="Cadastro de novo Curso:" style="margin-bottom:10px;">  
                        <p:growl id="growl" sticky="true" showDetail="true"/>  
                        <style> 
                            .ui-wizard-step-title {  
                                float: left;  
                                font-size: 14px;  
                                margin: 0 3px 0 0;  
                                padding: 0.4em;  
                            }   
                        </style>
                        <p:wizard  flowListener="#{cursoBean.onFlowProcess}" nextLabel="Próximo" backLabel="Anterior"  >

                            <p:tab id="tabInformacoesBasicas" title="Informações Básicas"  >  
                                <p:panel id="pInfBasicas"  header="Informações Básicas:" style="margin-bottom:10px;">
                                    <h:panelGrid columns="2" cellpadding="10">
                                        <h:outputText value="Nome do Curso:" />
                                        <p:inputText value="#{cursoBean.curso.nome}" style="width: 800px" />
                                        <h:outputText value="Tipologia:" />
                                        <p:selectOneMenu value="#{cursoBean.curso.tipologia}" panelStyle="width:150px"  
                                                         effect="fade" style="width:800px"  filter="true" filterMatchMode="startsWith" onchange="">  
                                            <f:selectItem itemLabel="Selecione" itemValue="" noSelectionOption="true"  />  
                                            <f:selectItems value="#{cursoBean.tiposDeCurso}" var="tc" itemLabel="#{tc.toString()}" itemValue="#{tc.toString()}" />
                                            <p:ajax update="notasDisponiveis, tiposTrabF"  listener="#{cursoBean.atualizarListaNotas()}" />  

                                        </p:selectOneMenu> 
                                        <h:outputText value="Instituição" />
                                        <p:selectOneMenu value="#{cursoBean.curso.instituicao.id}" panelStyle="width:150px"  
                                                         effect="fade" style="width:800px"  filter="true" filterMatchMode="startsWith">  
                                            <f:selectItem itemLabel="Selecione" itemValue="" noSelectionOption="true"  />  
                                            <f:selectItems value="#{instituicaoBean.listaInstituicoes}" var="inst" itemLabel="#{inst.nome} - #{inst.municipio} ,#{inst.estado} " itemValue ="#{inst.id}"/>  
                                        </p:selectOneMenu>

                                        <h:outputText value="Periodicidade atual da Oferta de vagas:" />
                                        <p:selectOneMenu value="#{cursoBean.curso.periodicidadeOferta}" panelStyle="width:150px"  
                                                         effect="fade" style="width:800px"  filter="true" filterMatchMode="startsWith" onchange="">  
                                            <f:selectItem itemLabel="Selecione" itemValue="" noSelectionOption="true"  />  
                                            <f:selectItems value="#{cursoBean.periodicidadeOferta}" var="po" itemLabel="#{po.toString()}" itemValue="#{po.toString()}" />
                                            <p:ajax update="pOfert1, pOfert2" />  

                                        </p:selectOneMenu> 

                                        <h:outputText value="Site do Curso:"  />
                                        <p:inputText value="#{cursoBean.curso.site}" style="width: 800px" />



                                    </h:panelGrid> 
                                    <h:panelGrid columns="4" cellpadding="10">
                                        <h:outputText value="Tipo de Processo Seletivo:" />
                                        <p:inputText value="#{cursoBean.curso.processoSeletivo}"/>

                                        <h:outputText value="Ano de Início de Oferta do Curso:" />
                                        <p:inputText value="#{cursoBean.curso.anoInicioCurso}"/>

                                        <h:outputText value="Número de Vagas por Período:" />
                                        <p:inputText value="#{cursoBean.curso.numeroDeVagas}"/>

                                        <h:outputText id="pOfert1" value="Duração Atual do Curso(semestres)" />
                                        <p:inputText value="#{cursoBean.curso.duracaoDoCurso}" />

                                    </h:panelGrid>

                                    <br/><br/>

                                    <p:panel header="Informe a quantidade de Docentes do curso com: " >

                                        <h:panelGrid columns="4" >


                                            <h:outputText value="Doutorado:" />
                                            <p:inputText value="#{cursoBean.curso.quantidadeDoutores}" />
                                            <h:outputText value="Mestrado:" />
                                            <p:inputText value="#{cursoBean.curso.quantidadeMestres}" />
                                            <h:outputText value="Especialização:" />
                                            <p:inputText value="#{cursoBean.curso.quantidadeEspecialistas}" />
                                            <h:outputText value="Graduação" />
                                            <p:inputText value="#{cursoBean.curso.quantidadeGraduados}" />
                                        </h:panelGrid>
                                    </p:panel>

                                    <br/><br/>

                                    <p:panel header="Mapeamento da Evasão " id="cadMap" >
                                        <h:panelGrid columns="4" >


                                            <h:outputText value="Período:"/> 
                                            <p:inputMask value="#{cursoBean.egressosCursoSelecionado.periodo}" mask="9999.9"/>     

                                            <h:outputText id="pOfert2" value="Duração do Curso(Semestres)"/>
                                            <p:inputText value="#{cursoBean.egressosCursoSelecionado.duracao}"/>

                                            <h:outputText value="Número Médio de Ingressos"/>
                                            <p:inputText value="#{cursoBean.egressosCursoSelecionado.ingressos}"/>

                                            <h:outputText value="Número Médio de Egressos"/>
                                            <p:inputText value="#{cursoBean.egressosCursoSelecionado.egressos}"/>

                                        </h:panelGrid>

                                        <h:panelGrid columns="1" cellpadding="20">
                                            <p:commandButton action="#{cursoBean.addMapeamentoEvasao()}" value="Adicionar" update="pInfBasicas " />
                                        </h:panelGrid>

                                        <p:messages id="messagesME" showDetail="true" autoUpdate="true" closable="true" escape="false" />  


                                    </p:panel>  
                                    <br/><br/>
                                    <p:panel id="listMapCadastrado" >
                                        <p:dataTable id="mapCad" var="egresso" value="#{cursoBean.listaEgressos}" paginator="false"   
                                                     selection="#{cursoBean.egressosCursoSelecionadoRemocao}" rowKey="#{egresso.id}"  >  

                                            <f:facet name="header">  
                                                Mapeamentos Cadastrados
                                            </f:facet>  

                                            <p:column headerText="Período" style="width:25%;min-width: 25%;max-width: 25%;">  
                                                #{egresso.periodo}   
                                            </p:column>  
                                            <p:column headerText="Duração #{cursoBean.unidadeTempo}" style="width:25%;min-width: 25%;max-width: 25%;">  
                                                #{egresso.duracao}   
                                            </p:column>  
                                            <p:column headerText="Ingressos" style="width:25%;min-width: 25%;max-width: 25%;">  
                                                #{egresso.ingressos}   
                                            </p:column>  
                                            <p:column headerText="Egressos" style="width:20%;min-width: 20%;max-width: 20%;">  
                                                #{egresso.egressos}   
                                            </p:column>  

                                            <p:column headerText="Remover" style="width:5%;min-width: 5%;max-width: 5%;">  
                                                <p:commandButton action="#{cursoBean.removerMapeamentoEvasao()}" icon="ui-icon-trash" title="Remover" update="mapCad">  
                                                    <f:setPropertyActionListener value="#{egresso}" target="#{cursoBean.egressosCursoSelecionadoRemocao}" />  
                                                </p:commandButton>   
                                            </p:column>  

                                        </p:dataTable>

                                    </p:panel>

                                </p:panel>




                            </p:tab>  


                            <p:tab id="tabDocentes" title="Docentes">

                                <p:dataTable id="listaDocentes" var="docentes" value="#{autorBean.listaAutores}"   paginator="true" rows="15"  
                                             selection="#{cursoBean.professorSelecionado}" 
                                             emptyMessage="Não existem professores cadastrados que atendam esse critério" 
                                             filteredValue="#{autorBean.filtroAutores}"> 


                                    <f:facet name="header">  
                                        Lista Docentes Disponíveis 
                                    </f:facet>  

                                    <p:column headerText="Nome" filterBy="nome" filterMatchMode="contains" style="width:25%;min-width: 25%;max-width: 25%;">  
                                        #{docentes.nome}    
                                    </p:column>  

                                    <p:column headerText="Instituição" filterBy="instituicaoAutor.nome" filterMatchMode="contains" style="text-align:center;min-width: 73%;max-width: 73%;white-space: normal;width:73%">  
                                        <h:outputText value="#{docentes.instituicaoAutor.nome} - #{docentes.instituicaoAutor.municipio}" />
                                    </p:column>  

                                    <p:column style="width:4%">  
                                        <p:commandButton action="#{cursoBean.addProfessor()}" id="selectButton" icon="ui-icon-plusthick" title="Add" update=":form:pDocCad">  
                                            <f:setPropertyActionListener value="#{docentes}" target="#{cursoBean.professorSelecionado}" />  
                                        </p:commandButton>  
                                    </p:column>  


                                </p:dataTable>
                                <br/>
                                <p:commandLink value="Não encontrou o docente? Click aqui para cadastrar." onclick="PF('dDocentes').show()"   />
                                <br/>  
                                <br/>

                                <p:panel id="pDocCad"  header="Docentes cadastrados:" style="margin-bottom:10px;">

                                    <p:dataTable id="docentesCadastrados" var="docenteCad" value="#{cursoBean.listaDocentesSelecionados}">  

                                        <p:column headerText="Nome" style="width:46%">  
                                            <h:outputText value="#{docenteCad.ultimoNome}, #{docenteCad.restanteNome} " />  
                                        </p:column>  
                                        <p:column headerText="Intituição" style="width: 50%">
                                            <h:outputText value="#{docenteCad.instituicaoAutor.nome} - #{docenteCad.instituicaoAutor.municipio} " />
                                        </p:column>


                                        <p:column style="width:4%">  
                                            <p:commandButton action="#{cursoBean.removerProfessor()}" id="selectButton" icon="ui-icon-trash" title="Remover" update="docentesCadastrados">  
                                                <f:setPropertyActionListener value="#{docenteCad}" target="#{cursoBean.professorSelecionadoRemocao}" />  
                                            </p:commandButton>  
                                        </p:column>  

                                    </p:dataTable>  


                                </p:panel>


                            </p:tab> 

                            <p:tab id="tabAvaliacoes" title="Avaliações">

                                <p:panel  header="Cadastro de avalições do Curso no MEC/Capes:" style="margin-bottom:10px;">
                                    <p:panel id="cadAval" header="Cadastro de novas avaliações:" style="margin-bottom:10px;">
                                        <h:panelGrid columns="2" cellpadding="10">  
                                            <h:outputText value="Nota:" />
                                            <p:selectOneMenu id="notasDisponiveis" value="#{cursoBean.avaliacaoSelecionada.nota}" panelStyle="width:150px"  
                                                             effect="fade" style="width:800px"  filter="true" filterMatchMode="startsWith">  
                                                <f:selectItem itemLabel="Selecione" itemValue="" noSelectionOption="true"  />  
                                                <f:selectItems value="#{cursoBean.listaNotasDisponiveis}" var="nota" itemLabel="#{nota.toString()}" itemValue ="#{nota.toString()}"/>  
                                            </p:selectOneMenu>
                                            <h:outputText value="Ano de Início:" />
                                            <p:inputText value="#{cursoBean.avaliacaoSelecionada.anoInicio}" size="4" maxlength="4" />
                                            <h:outputText value="Ano do Término:" />
                                            <p:inputText value="#{cursoBean.avaliacaoSelecionada.anoFim}" size="4" maxlength="4" />
                                            <h:outputText value="Upload de relatório de avaliação:" />

                                            <h:form enctype="multipart/form-data" >
                                                <p:fileUpload fileUploadListener="#{cursoBean.doUploadPDF}" label="Adicionar" mode="advanced" update="messages" auto="true"  allowTypes="/(\.|\/)(pdf)$/" multiple="false" />  
                                                <p:growl id="messages" showDetail="true" escape="false"/>  
                                            </h:form>

                                        </h:panelGrid>
                                        <h:panelGrid columns="1" >
                                            <p:commandButton value="Adicionar" action="#{cursoBean.addAvaliacao()}" update="cadAval, form:avaliacaoCadastradas " />
                                        </h:panelGrid>

                                    </p:panel>

                                    <p:panel  header="Avaliações Cadastradas:" style="margin-bottom:10px;">

                                        <p:dataTable id="avaliacaoCadastradas" var="ac" value="#{cursoBean.listaAvaliacoes}">  

                                            <p:columnGroup type="header">  
                                                <p:row>  
                                                    <p:column rowspan="3" headerText="Notas" />  
                                                    <p:column colspan="2" headerText="Intervalo de Avaliação" /> 
                                                    <p:column rowspan="2" headerText="Relatório" />
                                                    <p:column rowspan="2" headerText="" style="width:4%" /> 
                                                </p:row>  
                                                <p:row>  
                                                    <p:column colspan="1" headerText="Início" />  
                                                    <p:column colspan="1" headerText="Fim" />  

                                                </p:row>  


                                            </p:columnGroup>  


                                            <p:column>  
                                                #{ac.nota}
                                            </p:column>  

                                            <p:column headerText="Ano Início" >  
                                                <h:outputText value="#{ac.anoInicio}" />


                                            </p:column>  

                                            <p:column headerText="Ano Término" >  
                                                <h:outputText value="#{ac.anoFim}"/> 


                                            </p:column>  
                                            
                                            <p:column >  
                                                <h:outputText value="#{ac.pdf.nome}" />
                                            </p:column>  

                                            <p:column >  
                                                <p:commandButton action="#{cursoBean.removerAvaliacao()}" id="selectButton" icon="ui-icon-trash" title="Remover" ajax="false">  
                                                    <f:setPropertyActionListener value="#{ac}" target="#{cursoBean.avaliacaoSelecionadaRemocao}" />  
                                                </p:commandButton>  
                                            </p:column>  

                                        </p:dataTable>  


                                    </p:panel>
                                </p:panel>

                            </p:tab>  
                            
                            
                            
                            <p:tab id="tabPPP" title="PPP/PPC">  
                                <p:panel  header="Cadastro de novo PPP:" style="margin-bottom:10px;">
                                    <h:panelGrid columns="2" >
                                        
                                        <h:outputText value="Tipologia Trabalho Final:" />
                                        <p:selectOneMenu id="tiposTrabF" value="#{cursoBean.pppSelecionado.tipologiaTrabalhoFinal}" panelStyle="width:150px"  
                                                         effect="fade" editable="true"  >  
                                            <f:selectItem itemLabel="Selecione" itemValue="" noSelectionOption="true"  />  
                                            <f:selectItems value="#{cursoBean.tipoTrabalhoFinal}" var="tTF" itemLabel="#{tTF.toString()}" itemValue="#{tTF.toString()}" />
                                            <p:ajax update="pOfert1, pOfert2" />  

                                        </p:selectOneMenu> 
                                        <h:outputText value="Data de Aprovação:" />
                                        <p:calendar value="#{cursoBean.pppSelecionado.dataAprovacao}" locale="pt" showButtonPanel="true" navigator="true" id="ptCal"/>  
                                        
                                        
                                        <h:outputText value="Upload de PPP (PDF)" />
                                        <h:form enctype="multipart/form-data" >
                                            <p:fileUpload fileUploadListener="#{cursoBean.doUploadPPP}" mode="advanced" label="Adicionar" update="messages" auto="true"  allowTypes="/(\.|\/)(pdf)$/" multiple="false" />  
                                            <p:growl id="messages" showDetail="true" escape="false"/>  
                                        </h:form>
                                        <h:outputText value="Imagem Matriz Curricular" />
                                        <h:form enctype="multipart/form-data" >
                                            <p:fileUpload fileUploadListener="#{cursoBean.doUpload}" mode="advanced" update="messages" auto="true" label="Adicionar"  allowTypes="/(\.|\/)(gif|jpeg|jpg|png)$/" multiple="false" />  
                                            <p:growl id="messages" showDetail="true" escape="false"/>  
                                        </h:form>


                                        <h:outputText value="Resumo" />
                                        <p:editor value="#{cursoBean.pppSelecionado.resumo}" width="800" />



                                    </h:panelGrid>
                                    <h:panelGrid columns="1" >
                                        <p:commandButton value="Adicionar" action="#{cursoBean.addPPP()}" update="pppCadastrados" />
                                    </h:panelGrid>

                                </p:panel> 
                                <p:panel  header="PPP cadastrados:" style="margin-bottom:10px;">

                                    <p:dataTable id="pppCadastrados" var="pppCadastrados" value="#{cursoBean.listaPPP}">  

                                       
                                        <p:column headerText="Data Aprovação" style="width:23%">  
                                            <h:outputText value="#{pppCadastrados.dataAprovacao}" >
                                                <f:convertDateTime pattern="d/M/yyyy"/>  
                                            </h:outputText>  
                                        </p:column>  

                                        <p:column headerText="Tipologia Trabalho Final" style="width:23%">  
                                            <h:outputText value="#{pppCadastrados.tipologiaTrabalhoFinal}" />
                                             
                                        </p:column>
                                        
                                        <p:column headerText="PPP" style="width:50%">  
                                            <h:outputText value="#{pppCadastrados.pdf.nome}" />
                                             
                                        </p:column>  
                                        
                                        <p:column headerText="Matriz Curricular" style="width:50%">  
                                            <h:outputText value="#{pppCadastrados.matrizCurricular.nome}" />
                                             
                                        </p:column>  
                                        

                                        <p:column style="width:4%">  
                                            <p:commandButton action="#{cursoBean.removerPPP()}" id="selectButton" icon="ui-icon-trash" title="Remover" update="pppCadastrados">  
                                                <f:setPropertyActionListener value="#{pppCadastrados}" target="#{cursoBean.pppSelecionadoRemocao}" />  
                                            </p:commandButton>  
                                        </p:column>  

                                    </p:dataTable>  


                                </p:panel>
                            </p:tab>  

                            <p:tab id="tabCoordenacaoes" title="Coordenações">  
                                <p:panel header="Cadastro de nova Coordenação" style="margin-bottom:10px;">
                                    <h:panelGrid columns="2" cellpadding="10">  
                                        <h:outputText value="Coordenador:" />
                                        <p:selectOneMenu value="#{cursoBean.coordenacaoSelecionada.coordenador.id}" panelStyle="width:150px"  
                                                         effect="fade" style="width:800px"  filter="true" filterMatchMode="startsWith">  
                                            <f:selectItem itemLabel="Selecione" itemValue="" noSelectionOption="true"  />  
                                            <f:selectItems value="#{autorBean.listaAutores}" var="autor" itemLabel="#{autor.ultimoNome}, #{autor.restanteNome}" itemValue ="#{autor.id}"/>  
                                        </p:selectOneMenu>
                                        <h:outputText value="Data do Início:" />
                                        <p:calendar value="#{cursoBean.coordenacaoSelecionada.dataInicio}" />
                                        <h:outputText value="Data do Término:" />
                                        <p:calendar value="#{cursoBean.coordenacaoSelecionada.dataFim}" />
                                        <h:outputText value="Relato da experiência no período:" />
                                        <p:editor value="#{cursoBean.coordenacaoSelecionada.experiencia}" width="800" />
                                    </h:panelGrid>
                                    <h:panelGrid columns="1" >
                                        <p:commandButton value="Adicionar" action="#{cursoBean.addCoordenacao()}" ajax="false" />
                                    </h:panelGrid>
                                </p:panel >

                                <p:panel  header="Coordenações cadastradas:" style="margin-bottom:10px;">

                                    <p:dataTable id="coordenadoresCadastrados" var="coordenadoresCadastrados" value="#{cursoBean.listaCoordenacoes}">  

                                        <p:column >  
                                            <h:outputText value="#{coordenadoresCadastrados.coordenador.ultimoNome}, #{coordenadoresCadastrados.coordenador.restanteNome} " />  
                                        </p:column>  

                                        <p:column headerText="Data Início" style="width:23%">  
                                            <h:outputText value="#{coordenadoresCadastrados.dataInicio}" >
                                                <f:convertDateTime pattern="d/M/yyyy"/>  
                                            </h:outputText>  
                                        </p:column>  

                                        <p:column headerText="Data Término" style="width:23%">  
                                            <h:outputText value="#{coordenadoresCadastrados.dataFim}" >
                                                <f:convertDateTime pattern="d/M/yyyy"/>  
                                            </h:outputText>  
                                        </p:column>  

                                        <p:column style="width:4%">  
                                            <p:commandButton action="#{cursoBean.removerCoordenacao()}" id="selectButton" icon="ui-icon-trash" title="Remover" ajax="false">  
                                                <f:setPropertyActionListener value="#{coordenadoresCadastrados}" target="#{cursoBean.coordenacaoSelecionadaRemocao}" />  
                                            </p:commandButton>  
                                        </p:column>  

                                    </p:dataTable>  


                                </p:panel>


                            </p:tab>
                            <p:tab id="tabSalvar" title="Salvar Dados">
                                <p:panel  header="Finalizar Cadastro:" style="margin-bottom:10px;">

                                    <h3>O seguinte curso será cadastrado:</h3>
                                    <h4>Curso: <h:outputText value="#{cursoBean.curso.nome}"/> </h4>
                                    <h4>Instituição: <h:outputText value="#{cursoBean.curso.instituicao.nome} - #{cursoBean.curso.instituicao.municipio} ,#{cursoBean.curso.instituicao.estado}" /> </h4> 
                                    <p:commandButton action="#{cursoBean.cadastrarCurso()}"  value="Cadastrar" immediate="true" ajax="false"/>
                                </p:panel>

                            </p:tab>  

                        </p:wizard>    
                    </p:panel>

                    <p:dialog id="dProfessor" header="Cadastro Professor" widgetVar="dDocentes" width="600" height="400"   >

                        <p:messages id="messagesProf" autoUpdate="true" closable="true"  /> 
                        <p:panel id="pDocentes"  header="Cadastro de Professor" style="margin-bottom:10px;"  >  

                            <h:panelGrid id="grid" columns="3">

                                <h:outputText  value="Último nome:" />
                                <h:inputText id="ultimoNome" label="Ultimo Nome" value="#{autorBean.autor.ultimoNome}"   />
                                <p:message for="ultimoNome" display="icon"/>  
                                <h:outputText value="Restante do nome:" />
                                <h:inputText  id="restanteNome" label="Restante do Nome" value="#{autorBean.autor.restanteNome}"   />
                                <p:message for="restanteNome" display="icon"/> 

                            </h:panelGrid>
                            <h:panelGrid columns="2">
                                <h:outputText value="Lattes:" />
                                <p:inputText value="#{autorBean.autor.lattes}"></p:inputText>
                            </h:panelGrid>

                            <h:panelGrid columns="3">
                                <h:outputText value="Instituição:" />  
                                <p:selectOneMenu value="#{autorBean.autor.instituicaoAutor.id}" effect="fade" style="width:400px" filter="true" filterMatchMode="startsWith"    >
                                    <f:selectItem itemLabel="Selecione" itemValue="" />
                                    <f:selectItems value="#{instituicaoBean.listarInstituicoes()}" var="inst"  itemLabel="#{inst.nome} - #{inst.municipio} " itemValue ="#{inst.id}"  />
                                </p:selectOneMenu>
                                <p:commandButton icon="ui-icon-refresh" ajax="false"  /> 
                            </h:panelGrid>

                            <h:panelGrid columns="1">
                                <h:commandLink  actionListener="#{instituicaoBean.novaInstituicao}"  action="/cadastros/instituicoes/cadastroInstituicao" 
                                                target="_blank" style="margin-right:20px;" immediate="true"   >  
                                    <h:outputText value="Não encontrou a instituição?" />  
                                </h:commandLink>

                            </h:panelGrid>
                            <h:panelGrid columns="1">
                                <p:commandButton id="cadastrarAutor" value="Cadastrar Autor"  action="#{autorBean.cadastroAutor}" update=":form:docentesCadastrados" /> 
                            </h:panelGrid>



                        </p:panel>


                    </p:dialog>

                </h:form>    
            </f:view>
        </ui:define>
    </ui:decorate>
</html>